#include "powerTransfer.h"


//电调初始化
void powtrans_Init(void){
   //pwm初始化
   pwm_InitChannel(0, PWM_MODE_MOTOR);
   pwm_InitChannel(1, PWM_MODE_MOTOR);

   //启动时应设为0011(先设置in1 in2)
   pwm_SetChannel(0, 0);
   pwm_SetChannel(1, 0);

   //A2对应in3 D1对应in4
   GPIO_Init(GPIOA, GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_FAST);        //初始化时置高
   GPIO_Init(GPIOD, GPIO_PIN_1, GPIO_MODE_OUT_PP_HIGH_FAST);        //初始化时置高

   IN3_H();
   IN4_H();
}


//电机断电
void powtrans_Cur(void){
    //0011(断开)，先置in1 in2为0
    pwm_SetChannel(0, 0);
    pwm_SetChannel(1, 0);

    IN3_H();
    IN4_H();
}


//电机刹车
void powtrans_Break(void){
    //0000
    pwm_SetChannel(0, 0);
    pwm_SetChannel(1, 0);

    IN3_L();
    IN4_L();
}


//正转 val 0-32000
void powtrans_Forward(u16 val){
    /*  1010
    首先设成0011(断开)，先置in1 in2为0
    然后设置in3 in4
    最后改变in1/in2(需要置1的pin接入pwm)， * in1 in2不能同时为1
    */
    powtrans_Cur();     //断开    
    IN4_L();        //in4置0,in3已经是1    
    pwm_SetChannel(0,val);  //in1接入pwm
}


//反转 val 0-32000
void powtrans_Backward(u16 val){
    /* 0101
    首先设成0011(断开)，先置in1 in2为0
    然后设置in3 in4
    最后改变in1/in2(需要置1的pin接入pwm)， * in1 in2不能同时为1
    */
    powtrans_Cur();     //断开
    IN3_L();        //in3置0，in4已经是1
    pwm_SetChannel(1,val);      //in2接入pwm
}